package day8;
//继承Thread 重写run()
public class TestThread extends Thread{
    //run()表示线程运行的逻辑
    public void run() {
                    //获取当前运行的线程对象.获取线程名
        String name=Thread.currentThread().getName();
        int sum=0;
        for(int i=1;i<=100;i++){
            if(i%2==0) {
                sum+=i;
                System.out.println(name+" "+i);
                try {
                    Thread.sleep(100);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
        System.out.println(name+"统计的偶数和:"+sum);
    }
    public static void main(String[] args) {
        //1.创建线程(是Thread类型相关的类都是属于线程)
        TestThread tt1=new TestThread();
        TestThread tt2=new TestThread();
        tt1.setName("A");
        tt2.setName("B");
        MyThread my=new MyThread();
        //设置守护线程 默认是false,必须在线程启动之前设置
        //否则失效
        my.setDaemon(true);

        //2.启动线程(不能使用run()只相当于对象调用方法执行)
        //start()才属于开启线程,会让线程进入道就绪状态
        //表示准备运行 就可以和其他线程竞争CPU
        tt1.start();
        tt2.start();
        my.start();
    }
}
//守护线程
class MyThread extends Thread{
    public void run(){
        while(true){
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("守护线程正在执行...");
        }
    }
}